package com.smart.model.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.smart.common.PageQueryRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author zhanghong
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel("项目请求模型")
public class ProjectRequest extends PageQueryRequest implements Serializable {
    @ApiModelProperty("项目名称")
    private String projectName;
    @ApiModelProperty("项目编号")
    private String projectNumber;
    @ApiModelProperty("工程类型 ref字典表-工程类型")
    private String engineeringType;
    @ApiModelProperty("工程造价")
    private BigDecimal engineeringCost;
    @ApiModelProperty("施工状态 ref字典表-施工状态")
    private String constructionStatus;
    @ApiModelProperty("质量监督注册号")
    private String qualityRegistrationNumber;
    @ApiModelProperty("经纬度")
    private String location;
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
    @ApiModelProperty("开工日期")
    private Date startDate;
    @ApiModelProperty("建筑面积")
    private BigDecimal floorArea;
    @ApiModelProperty("街道编码")
    private String streetCode;
    @ApiModelProperty("详细地址")
    private String address;
    @ApiModelProperty("施工单位")
    private String shigongUnit;
    @ApiModelProperty("施工单位-项目负责人-姓名")
    private String shigongHeadName;
    @ApiModelProperty("施工单位-项目负责人-职务")
    private String shigongHeadJob;
    @ApiModelProperty("施工单位-项目负责人-手机")
    private String shigongHeadPhone;
    @ApiModelProperty("施工单位-项目联系人-职务")
    private String shigongContactJob;
    @ApiModelProperty("施工单位-项目联系人-姓名")
    private String shigongContactName;
    @ApiModelProperty("施工单位-项目联系人-手机")
    private String shigongContactPhone;
    @ApiModelProperty("建设单位")
    private String jiansheUnit;
    @ApiModelProperty("建设单位-项目负责人-姓名")
    private String jiansheHeadName;
    @ApiModelProperty("建设单位-项目负责人-手机")
    private String jiansheHeadPhone;
    @ApiModelProperty("监理单位")
    private String jianliUnit;
    @ApiModelProperty("监理单位-项目负责人-姓名")
    private String jianliHeadName;
    @ApiModelProperty("监理单位-项目负责人-手机")
    private String jianliHeadPhone;
    @ApiModelProperty("项目账号-项目登录用户名")
    private String account;
    @ApiModelProperty("项目账号-密码")
    private String password;
    @ApiModelProperty("审核类型 NEW新项目审核、CHANGE项目信息变更")
    private String auditType;
    @ApiModelProperty("审核状态 WAIT待审核、PASS审核通过、REJECT驳回")
    private String auditStatus;
    @ApiModelProperty("有效状态 0无效、1有效")
    private Integer valid;
    @ApiModelProperty("新项目审核结果")
    private Boolean examine;
    @ApiModelProperty("项目名称/编号/质量监督注册号")
    private String projectInfo;
    @ApiModelProperty("建设单位id")
    private Long projectUnitId;

    private List<Long> projectIds;
    @ApiModelProperty("判断是云监管还是云管理查询 云监管：true 云管理：false")
    private Boolean superviseOrManage = true;

    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
    @ApiModelProperty("监管端-项目人员管理列表-开始时间")
    private Date startTime;
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
    @ApiModelProperty("监管端-项目人员管理列表-结束时间")
    private Date endTime;
    @ApiModelProperty("筛除在场人数为0的项目 true为勾选")
    private Boolean excludeIn;
    @ApiModelProperty("筛除离场人次为0的项目 true为勾选")
    private Boolean excludeOut;
}
